This invention relates to the fields of biofeedback and virtual reality programming.
In the certain fields of virtual reality programming, it is often desirable to convert one or more streams of data so as to be displayed on screen in an effective manner, reflecting as meaningfully as possible the three-dimensional (3D) scene intended for display. Doing so typically requires a significant amount of programming customized code for the expected stream of data that will be interpolated and used to create a 3D scenegraph. When multiple streams of data are utilized the executable code is that much more intertwined with the particular 3D scenegraph and thus even more complex to modify. Changes in the scenegraph or xe2x80x9ccontentxe2x80x9d, whether small modification or entire replacement, require extensive and tedious programming endeavors at source code programming levels. There exists a need for a method to allow an entire 3D scenegraph to be both modifiable and responsive to input data streams, without significant rewriting of the executable code.
In the biofeedback field, for example, patients view a screen that displays a 3D xe2x80x9cgamexe2x80x9d (content) responsive to the multiple input data streams from sensors detecting the user""s physiological data. Modifying these xe2x80x9cgamesxe2x80x9d, or creating new ones, typically involves modifying source code and recompiling a new executable.
For a computer to display a 3D scene, a moving spaceship, for example, that is responsive to input data (i.e. the spaceship moves in response to and dependent on values from a stream of data), the data must be interpolated (called an Interpolation in VRML specifications), i.e. points for use on the display must be calculated between two chronologically defined data points, so as to enable, for example, the spaceships to appear to move smoothly. This spaceship is created and shown in the desired moving fashion by a program utilizing a 3D rendering engine. A typical rendering engine that displays and interpolates in the preferred embodiment is that sold by Parallel Graphics.
Although rendering engines are standard in 3D graphics applications, using them to create a new xe2x80x9cgamexe2x80x9d in a biofeedback or other setting requires a significant amount of programming by the xe2x80x9cgamesxe2x80x9d developer (here the xe2x80x9ccontent developer).
In the biofeedback field, the proprietary computer systems utilize proprietary software, and sometimes proprietary hardware, to develop these xe2x80x9cgamesxe2x80x9d or xe2x80x9ccontentxe2x80x9d that the patient xe2x80x9cplaysxe2x80x9d within the biofeedback exercises. For example, the patient may try to keep a car on a highway, on screen, by controlling his/her mental state or blood pressure, or it might be a space ship that moves in response to the desired, or undesired, actions of the patient as measured by the sensors detecting the targeted bodily or mental functions. These games also typically require significant programming that make the task of modifying them or developing new ones time-consuming.
The need for uniformity and ease of programming is complicated somewhat in the biofeedback arena. PC-based biofeedback systems are designed in various ways. Some systems focus solely on EEG biofeedback (neurofeedback). Some systems focus solely on peripheral (everything but brainwaves) biofeedback. Some systems facilitate clinician design of feedback protocols combining peripheral and EEG measurements (at the expense of complexity) Other systems are tuned to provide only a very specific kind of training (at the expense of total capabilities). Still other systems focus on multi-site EEG data acquisition. No single system is known that is capable of acquiring every kind of physiological measurement used for biofeedback training, and there is no known single system capable of every type of training protocol. Biofeedback clinicians purchase systems that best address the needs of their clinic and the kind of training services they provide.
Currently available biofeedback systems have focused on the best ways to gather and process the physiological data, and the ways to best present that information to the clinician. However, the current systems have not focused much on ways to intuitively convey this information to the person receiving the biofeedback training. Given the widening acceptance of biofeedback as a viable treatment for numerous conditions, the development of more varieties of biofeedback protocols, and the potential growth in complexity of the real-time data presented to the biofeedback client, more intuitive methods of conveying feedback information to the client (i.e. new xe2x80x9ccontentxe2x80x9d) are desired and will be needed.
Whether it be biofeedback games, mainstream entertainment games, or other xe2x80x9ccontentxe2x80x9d that uses multiple data streams for input, the developer must make tedious, substantial, and sometimes fundamental changes to the executable code for meaningful changes in the behavior or control of the visual and auditory xe2x80x9ccontentxe2x80x9d. A method is needed, so as to reduce the task of creating content significantly.
The inventive process advances all of these interests to allow a much more flexible and universal method to connect proprietary biofeedback software or other software providing multiple data streams, to VRML-based software for providing feedback to the user, so as to make it possible for VRML content to be created for any system, biofeedback or otherwise, in an efficient, system independent, and reusable way without significantly (if any) recoding of an executable.
VRML (pronounced Ver-Mul) is an acronym for Virtual Reality Modeling Language. It is a standardized language for describing three dimensional modeling and animation of geometric objects. VRML allows a 3D scene to be manipulated in real-time and provides for the organization of objects within scenes in a hierarchical fashion. A VRML scene may include any number of objects. A VRML scene may also contain animations (object behavior). Using VRML, a 3D scene is defined in a written language in terms of nodes, fields, and events. Nodes are abstractions of real-world objects and concepts. Examples of nodes include shapes, lights, textures, sounds, sensors, timers, scripts, and interpolators. Nodes contain fields and events. A field is a property or attribute of a node that can hold and sometimes receive and/or pass a value. Fields may contain data and one or more values, much like a variable or array does in computer programming. There are two types of eventsxe2x80x94eventIn and eventOut. Messages can be sent between nodes along routes that are connected via an eventOut to an eventIn. A field that""s combined with an eventIn and eventOut has the characteristics of all three components and is called an exposedField. Each type of node has a fixed set of fields. Nodes are organized into a hierarchical representation of a 3D scene called a scenegraph. VRML is the only ISO (International Standards organization) ratified standard for 3D over the internet.
It is therefore an object of the invention to create a process for easily and universally interfacing biofeedback and other applications to virtual reality, to allow for relatively quick and easy creation and implementations of new or modified content, responsive to the anticipated streams of data, and with a minimum of executable level (or lower level) programming.
The inventive process creates a proprietary program andd proprietary VRML node to comprise an interface between the content developer utilizing VRML and the proprietary biofeedback or other acquisition system that exports data streams so as to allow for a universal connection to the proprietary system, allowing content developers the freedom, to easily and quickly develop new content.